class Solution(object):
    def smallerNumbersThanCurrent(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        res = []
        for num in nums:
            sum_small = sum([num > nums[i] for i in range(len(nums))])
            res.append(sum_small)
        return res

if __name__ == '__main__':
    nums = [8,1,2,2,3]
    print(Solution().smallerNumbersThanCurrent(nums))
# 思路：
# 遍历数组nums，对于每个元素num，统计其右边所有元素中比它小的元素的个数，并将其加入结果数组res。
# 统计右边小于num的元素个数的方法是，遍历数组nums，对于每个元素nums[i]，如果nums[i]大于num，则将其加入计数器sum_small。
# 最后将sum_small加入结果数组res，并返回结果数组res。
# 时间复杂度：O(n^2)，遍历数组nums需要O(n)时间，对于每个元素nums[i]，需要遍历数组nums需要O(n)时间，因此总时间复杂度为O(n^2)。
# 空间复杂度：O(1)，只使用了常数个变量，因此空间复杂度为O(1)。